package com.yue.wx.service;

import java.util.*;

import com.yue.wx.bean.response.*;
import com.yue.wx.common.HttpPostUploadUtil;
import com.yue.wx.common.MessageUtil;

/**
 * @author zhengyl
 * @version date：2019年5月23日 下午6:49:11
 * @description ：信息处理类
 */
public class MsgDispatcher {
    public static String processMessage(Map<String, String> map) throws Exception {
        String openid = map.get("FromUserName"); //用户openid
        String mpid = map.get("ToUserName");   //公众号原始ID
        if (map.get("MsgType").equals(MessageUtil.REQ_MESSAGE_TYPE_TEXT)) { // 文本消息
            // 普通文本消息
            TextMessage txtmsg = new TextMessage();
            txtmsg.setToUserName(openid);
            txtmsg.setFromUserName(mpid);
            txtmsg.setCreateTime(new Date().getTime());
            txtmsg.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_TEXT);
            txtmsg.setContent("统一回复：许泰是个丑逼");
//            StringBuffer sb = new StringBuffer();
//            String content = map.get("Content");
//            sb.append("欢迎关注史上最帅公众号：\n\n ");
//            sb.append("1、歌德你好   \n\n ");
//            sb.append("2、听首歌吧   \n\n ");
//            sb.append("3、语音回复   \n\n ");
//            sb.append("回复?调出主菜单哦哦   \n ");
//            String context = sb.toString();
//            txtmsg.setContent(context);
//
//            if ("1".equals(content)) {
//                txtmsg.setContent("歌德你好！");
//            } else if ("2".equals(content)) {
//                // Test test=new Test();
//                // test.image();
//                MusicMessage mucmsg = new MusicMessage();
//                mucmsg.setToUserName(openid);
//                mucmsg.setFromUserName(mpid);
//                mucmsg.setCreateTime(new Date().getTime());
//                mucmsg.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_MUSIC);
//
//                Music music = new Music();
//                HttpPostUploadUtil util = new HttpPostUploadUtil("thumb");
//                String filepath = "C:\\Users\\Administrator\\Desktop\\2.jpg";
//                String mediaid = util.formUpload(filepath);
//                System.out.println(mediaid);
//                music.setTitle("十年");
//                music.setThumbMediaId(mediaid);
//                music.setDescription("十年——陈奕迅");
//                music.setMusicUrl("http://music.163.com/#/song?id=31877628");
//                music.setHQMusicUrl("http://music.163.com/#/song?id=31877628");
//                mucmsg.setMusic(music);
//                return MessageUtil.musicMessageToXml(mucmsg);
//            } else if ("3".equals(content)) {
//                txtmsg.setContent("语音回复！");
//            } else if ("？".equals(content)) {
//                txtmsg.setContent(context);
//            } else {
//                txtmsg.setContent("你好，欢迎来到zhengyl博客！");
//            }
            return MessageUtil.textMessageToXml(txtmsg);
        }
        if (map.get("MsgType").equals(MessageUtil.REQ_MESSAGE_TYPE_IMAGE)) { // 图片消息
            NewsMessage newmsg = new NewsMessage();
            newmsg.setToUserName(openid);
            newmsg.setFromUserName(mpid);
            newmsg.setCreateTime(new Date().getTime());
            newmsg.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_NEWS);

            System.out.println("==============这是图片消息！");
            Article article = new Article();
            article.setDescription("这是图文消息1"); //图文消息的描述
            article.setPicUrl("https://i.loli.net/2019/05/26/5cea3d137aa1469348.jpg"); //图文消息图片地址
            article.setTitle("图文消息1");  //图文消息标题
            article.setUrl("https://www.cnblogs.com/zhengyl");  //图文url链接
            List<Article> list = new ArrayList<Article>();
            list.add(article);     //这里发送的是单图文，如果需要发送多图文则在这里list中加入多个Article即可！
            newmsg.setArticleCount(list.size());
            newmsg.setArticles(list);
            return MessageUtil.newsMessageToXml(newmsg);
        }
        if (map.get("MsgType").equals(MessageUtil.REQ_MESSAGE_TYPE_LINK)) { // 链接消息
            System.out.println("==============这是链接消息！");
        }
        if (map.get("MsgType").equals(MessageUtil.REQ_MESSAGE_TYPE_LOCATION)) { // 位置消息
            System.out.println("==============这是位置消息！");
        }
        if (map.get("MsgType").equals(MessageUtil.REQ_MESSAGE_TYPE_VIDEO)) { // 视频消息
            System.out.println("==============这是视频消息！");
        }
        if (map.get("MsgType").equals(MessageUtil.REQ_MESSAGE_TYPE_VOICE)) { // 语音消息
            System.out.println("==============这是语音消息！");
        }

        return null;
    }
}